package core

/* ============================================================ *
 * 功能:组件加载
 * 描述:主要是加载 cpts 文件中的 组件
 * ============================================================ */

type Cpt interface {
	GetName() string
	Run() error
}

// 组件池 加载到内存中
var cpts = make(map[string]Cpt)

// 加载多个组件
func LoadCpts(instances ...Cpt) {
	for _, cpt := range instances {
		GetCptConfig(cpt.GetName(), cpt) // 读取配置 到 对应组件 instance 中

		cpts[cpt.GetName()] = cpt // 添加组件
		cpt.Run()
	}
}

// 加载单个组件
func LoadCpt(cpt Cpt) {
	GetCptConfig(cpt.GetName(), cpt)
	cpt.Run()
}
